﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.ServiceModel;
    using System.ServiceModel.Channels;

    [GeneratedCode("System.ServiceModel", "3.0.0.0"), DebuggerStepThrough]
    public class PTZClient : ClientBase<PTZ>, PTZ
    {
        public PTZClient()
        {
        }

        public PTZClient(string endpointConfigurationName) : base(endpointConfigurationName)
        {
        }

        public PTZClient(Binding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress)
        {
        }

        public PTZClient(string endpointConfigurationName, EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public PTZClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public void AbsoluteMove(string ProfileToken, PTZVector Position, PTZSpeed Speed)
        {
            base.Channel.AbsoluteMove(ProfileToken, Position, Speed);
        }

        public void ContinuousMove(string ProfileToken, PTZSpeed Velocity, string Timeout)
        {
            ContinuousMoveRequest request = new ContinuousMoveRequest {
                ProfileToken = ProfileToken,
                Velocity = Velocity,
                Timeout = Timeout
            };
            ((PTZ) this).ContinuousMove(request);
        }

        public string CreatePresetTour(string ProfileToken)
        {
            return base.Channel.CreatePresetTour(ProfileToken);
        }

        public PTZConfiguration GetConfiguration(string PTZConfigurationToken)
        {
            return base.Channel.GetConfiguration(PTZConfigurationToken);
        }

        public PTZConfigurationOptions GetConfigurationOptions(string ConfigurationToken)
        {
            return base.Channel.GetConfigurationOptions(ConfigurationToken);
        }

        public PTZConfiguration[] GetConfigurations()
        {
            GetConfigurationsRequest request = new GetConfigurationsRequest();
            return ((PTZ) this).GetConfigurations(request).PTZConfiguration;
        }

        public PTZNode GetNode(string NodeToken)
        {
            return base.Channel.GetNode(NodeToken);
        }

        public PTZNode[] GetNodes()
        {
            GetNodesRequest request = new GetNodesRequest();
            return ((PTZ) this).GetNodes(request).PTZNode;
        }

        public PTZPreset[] GetPresets(string ProfileToken)
        {
            GetPresetsRequest request = new GetPresetsRequest {
                ProfileToken = ProfileToken
            };
            return ((PTZ) this).GetPresets(request).Preset;
        }

        public PresetTour GetPresetTour(string ProfileToken, string PresetTourToken)
        {
            return base.Channel.GetPresetTour(ProfileToken, PresetTourToken);
        }

        public PTZPresetTourOptions GetPresetTourOptions(string ProfileToken, string PresetTourToken)
        {
            return base.Channel.GetPresetTourOptions(ProfileToken, PresetTourToken);
        }

        public PresetTour[] GetPresetTours(string ProfileToken)
        {
            GetPresetToursRequest request = new GetPresetToursRequest {
                ProfileToken = ProfileToken
            };
            return ((PTZ) this).GetPresetTours(request).PresetTour;
        }

        public PtzServiceCapabilities GetServiceCapabilities()
        {
            return base.Channel.GetServiceCapabilities();
        }

        public PTZStatus GetStatus(string ProfileToken)
        {
            return base.Channel.GetStatus(ProfileToken);
        }

        public void GotoHomePosition(string ProfileToken, PTZSpeed Speed)
        {
            base.Channel.GotoHomePosition(ProfileToken, Speed);
        }

        public void GotoPreset(string ProfileToken, string PresetToken, PTZSpeed Speed)
        {
            base.Channel.GotoPreset(ProfileToken, PresetToken, Speed);
        }

        public void ModifyPresetTour(string ProfileToken, PresetTour PresetTour)
        {
            base.Channel.ModifyPresetTour(ProfileToken, PresetTour);
        }

        public void OperatePresetTour(string ProfileToken, string PresetTourToken, PTZPresetTourOperation Operation)
        {
            base.Channel.OperatePresetTour(ProfileToken, PresetTourToken, Operation);
        }

        public void RelativeMove(string ProfileToken, PTZVector Translation, PTZSpeed Speed)
        {
            base.Channel.RelativeMove(ProfileToken, Translation, Speed);
        }

        public void RemovePreset(string ProfileToken, string PresetToken)
        {
            base.Channel.RemovePreset(ProfileToken, PresetToken);
        }

        public void RemovePresetTour(string ProfileToken, string PresetTourToken)
        {
            base.Channel.RemovePresetTour(ProfileToken, PresetTourToken);
        }

        public string SendAuxiliaryCommand(string ProfileToken, string AuxiliaryData)
        {
            return base.Channel.SendAuxiliaryCommand(ProfileToken, AuxiliaryData);
        }

        public void SetConfiguration(PTZConfiguration PTZConfiguration, bool ForcePersistence)
        {
            base.Channel.SetConfiguration(PTZConfiguration, ForcePersistence);
        }

        public void SetHomePosition(string ProfileToken)
        {
            base.Channel.SetHomePosition(ProfileToken);
        }

        public void SetPreset(string ProfileToken, string PresetName, ref string PresetToken)
        {
            base.Channel.SetPreset(ProfileToken, PresetName, ref PresetToken);
        }

        public void Stop(string ProfileToken, bool PanTilt, bool Zoom)
        {
            base.Channel.Stop(ProfileToken, PanTilt, Zoom);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        ContinuousMoveResponse PTZ.ContinuousMove(ContinuousMoveRequest request)
        {
            return base.Channel.ContinuousMove(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetConfigurationsResponse PTZ.GetConfigurations(GetConfigurationsRequest request)
        {
            return base.Channel.GetConfigurations(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetNodesResponse PTZ.GetNodes(GetNodesRequest request)
        {
            return base.Channel.GetNodes(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetPresetsResponse PTZ.GetPresets(GetPresetsRequest request)
        {
            return base.Channel.GetPresets(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetPresetToursResponse PTZ.GetPresetTours(GetPresetToursRequest request)
        {
            return base.Channel.GetPresetTours(request);
        }
    }
}

